

using System;
using Abp.Application.Services.Dto;
using Abp.Domain.Entities.Auditing;
using System.ComponentModel.DataAnnotations;
using Yozeev.BusinessLogic;
using Yozeev.UserManagerment.Users;
using Yozeev.SystemConfig;

namespace Yozeev.BusinessLogic.Dtos
{
    public class AccountListDto : ByBranchEntityDto<Guid> 
    {
		/// <summary>
		/// 结账单号
		/// </summary>
		[Required(ErrorMessage="AccountNo不能为空")]
		public string AccountNo { get; set; }
        /// <summary>
		/// 结账日期
		/// </summary>
		[Required(ErrorMessage="AccountDate不能为空")]
		public DateTime AccountDate { get; set; }
		/// <summary>
		/// 数量
		/// </summary>
		[Required(ErrorMessage="Quantity不能为空")]
		public long Quantity { get; set; }
		/// <summary>
		/// 金额
		/// </summary>
		[Required(ErrorMessage="Amount不能为空")]
		public decimal Amount { get; set; }
		/// <summary>
		/// 收款状态
		/// </summary>
		public AccountStatusEnum AccountStatus { get; set; }
		/// <summary>
		/// 收款人标识
		/// </summary>
		public long? CollectiorId { get; set; }
		/// <summary>
		/// 收款人
		/// </summary>
		public User Collectior { get; set; }
		/// <summary>
		/// 收款时间
		/// </summary>
		[Required(ErrorMessage="CollectionTime不能为空")]
		public DateTime? CollectionTime { get; set; }

		/// <summary>
		/// 支付方式
		/// </summary>
		public Guid? PayMethodId { get; set; }
		public PayMethod PayMethod { get; set; }
		/// <summary>
		/// 备注
		/// </summary>
		public string Remark { get; set; }
		/// <summary>
		/// 流水号，包括银行名称，银行账号，流水号
		/// </summary>
		public string VoucherNo { get; set; }
		/// <summary>
		/// 应退金额
		/// </summary>
		public decimal RAmount { get; set; }
		/// <summary>
		/// 总金额
		/// </summary>
		public decimal TotalAmount { get; set; }
		/// <summary>
		/// 应退数量
		/// </summary>
		public long RQuantity { get; set; }
		/// <summary>
		/// 总数量
		/// </summary>
		public long TotalQuantity { get; set; }
	}
}